   
//************************************************* ****************
// Autores: Mayra Yucely Beb Carne: 12.537
// Yoly Moreno Carne: 12519
// Samantha Catun Carne: 12383
// Seccion:
// Fecha: 08/07/2013
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.border.TitledBorder;

public class Interfaz {
    //atributos de la clase
    private JFrame ventana;
    private JButton  on, off, guardar, escuchar, sincronizar;
    private JButton bo1, bo2, bo3, bo4, bo5, bo6, bo7, bo8, bo9, bo10, bo11, bo12;
    private JLabel msj, estacion, estado, estado2; //print
    private JPanel PanelBotones, PanelMenu, principal, onOff;
    private JTextField amFm, frecuencia;
    boolean result;
    private Radio radio;
    private String frecu;
    private String EMISOR;
    private double emisora;
    private int e;
    
    public Interfaz(){
        escuchar=new JButton("Escuchar");
        escuchar.addActionListener(new Interfaz.botonListener());
        
        guardar=new JButton("Guardar");
        guardar.addActionListener(new Interfaz.botonListener());
        
        sincronizar=new JButton("Sincronizar");
        sincronizar.addActionListener(new Interfaz.botonListener());
        
        ventana = new JFrame ("RADIO");
        principal = new JPanel();
        PanelBotones = new JPanel();
        PanelMenu = new JPanel();
        onOff = new JPanel();
        estado = new JLabel();
        estado2 = new JLabel();
        radio = new Radio();
        frecu=radio.getFrecuencia();
        emisora=radio.getEstaciones();
        e = 0; 
        
        Interfaz.TempListener cuadro = new Interfaz.TempListener();
        
        amFm= new JTextField(6);
        amFm.addActionListener(cuadro);
                
        frecuencia= new JTextField(6);
        frecuencia.addActionListener(cuadro);
        
	on = new JButton("Encender");
        on.addActionListener(new Interfaz.botonListener());
        
        off = new JButton("Apagar");
        off.addActionListener(new Interfaz.botonListener());
        
	bo1=  new JButton("1");
        bo1.addActionListener(new Interfaz.botonListener());
        
	bo2 = new JButton("2" );
        bo2.addActionListener(new Interfaz.botonListener());
        
        bo3=  new JButton("3");
        bo3.addActionListener(new Interfaz.botonListener());
        
	bo4 = new JButton("4" );
        bo4.addActionListener(new Interfaz.botonListener());
        
	bo5=  new JButton("5");
        bo5.addActionListener(new Interfaz.botonListener());
        
	bo6 = new JButton("6" );
	bo6.addActionListener(new Interfaz.botonListener());
       
        bo7=  new JButton("7");
        bo7.addActionListener(new Interfaz.botonListener());
        
	bo8 = new JButton("8" );
	bo8.addActionListener(new Interfaz.botonListener());
       
        bo9=  new JButton("9");
        bo9.addActionListener(new Interfaz.botonListener());
        
	bo10 = new JButton("10" );
        bo10.addActionListener(new Interfaz.botonListener());
        
	bo11=  new JButton("11");
        bo11.addActionListener(new Interfaz.botonListener());
	
        bo12 = new JButton("12" );
        bo12.addActionListener(new Interfaz.botonListener());
        
        msj = new JLabel("Emisora");
        estacion = new JLabel("AM/FM");
	
        }
    
    public JFrame getVentana(){
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//es para indicar que se cierra si se da en el de cerrar
        ventana.getContentPane().add(getPrincipal());
        ventana.pack();//para que se reordene con todos los panel y su contenido
        ventana.setVisible(true);//indica que es visible
        return ventana;
    }
    
   public JPanel getPrincipal(){
        principal.setPreferredSize(new Dimension(600, 400));//se define el tamano del panel
        principal.setLayout(new GridLayout(3, 1));
        principal.setBorder(new TitledBorder("-"));
        principal.add(getOnOff());
        principal.add(getPanelMenu());
        principal.add(getPanelBotones());
       
        principal.setVisible(true);//indica que es visible    
        return principal;
   }
   
   public JPanel getPanelBotones(){
       bo1.setBounds(30, 2, 90, 30);
       bo2.setBounds(120, 2, 90, 30);
       bo3.setBounds(210, 2, 90, 30);
       bo4.setBounds(300, 2, 90, 30);
       bo5.setBounds(390, 2, 90, 30);
       bo6.setBounds(480, 2, 90, 30);
       bo7.setBounds(30, 40, 90, 30);
       bo8.setBounds(120, 40, 90, 30);
       bo9.setBounds(210, 40, 90, 30);
       bo10.setBounds(300, 40, 90, 30);
       bo11.setBounds(390, 40, 90, 30);
       bo12.setBounds(480, 40, 90, 30);
       guardar.setBounds(110,80,110,30);
       sincronizar.setBounds(250,80,110,30);
       guardar.setEnabled(false);
       sincronizar.setEnabled(false);
       
       PanelBotones.setLayout(null);
       PanelBotones.add(bo1);
       PanelBotones.add(bo2);
       PanelBotones.add(bo3);
       PanelBotones.add(bo4);
       PanelBotones.add(bo5);
       PanelBotones.add(bo6);
       PanelBotones.add(bo7);
       PanelBotones.add(bo8);
       PanelBotones.add(bo9);
       PanelBotones.add(bo10);
       PanelBotones.add(bo11);
       PanelBotones.add(bo12);
       
       PanelBotones.add(guardar);
       PanelBotones.add(sincronizar);
      
       PanelBotones.setVisible(false);
       return PanelBotones;
   }
   
   
   public JPanel getOnOff(){
       onOff.setPreferredSize(new Dimension(140, 400));//se define el tamano del panel
       onOff.setLayout(new GridLayout(2, 1));       
       onOff.setVisible(true);//indica que es visible  
       onOff.setLayout(null);
       onOff.setBorder(new TitledBorder("on/off"));
       on.setBounds(100, 30, 90, 40);
       on.setVisible(true);
       off.setBounds(200, 30, 90, 40);
       off.setVisible(false);
       onOff.add(on);
       onOff.add(off);
       return onOff;
   }
   
   
   public JPanel getPanelMenu(){
        PanelMenu.setBorder(new TitledBorder("INGRESE OPCION: "));
        PanelMenu.setLayout(new GridLayout(4, 1));
        PanelMenu.add(estado);
        PanelMenu.add(msj);
        PanelMenu.add(amFm);
        PanelMenu.add(estacion);
        PanelMenu.add(frecuencia);
        PanelMenu.add(estado);
        PanelMenu.add(estado2);
        PanelMenu.add(escuchar);

        PanelMenu.add (Box.createRigidArea (new Dimension (0, 20)));
        PanelMenu.setVisible(false);    
        return PanelMenu;
   }
   
    private class botonListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent event) {
            if(event.getSource()== on)
            {
                off.setVisible(true);
                on.setVisible(false);
                PanelMenu.setVisible(true);
                }
            if(event.getSource()== off){
                off.setVisible(false);
                on.setVisible(true);
                PanelMenu.setVisible(false);     
            }
            
            if(event.getSource()==escuchar){
                    estado.setText("Frecuencia: " +radio.getFrecuencia());
                    estado2.setText("Emisora: " + radio.getEstaciones());
                    PanelBotones.setVisible(true);
              
            }
            
            if(event.getSource()== bo1){
                e = 0; 
                try {
                    radio.LeerEstacion(e);
                    guardar.setEnabled(true);
                } catch (Exception ex) {
                }

               
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }
            
           if(event.getSource()== bo2){
                 guardar.setEnabled(true);
                 e = 1; 
                 emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }
           
            if(event.getSource()== bo3){
                 guardar.setEnabled(true);
                 e = 2;
                 emisora = radio.getEstaciones();
                 frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }

            if(event.getSource()== bo4){
                 guardar.setEnabled(true);
                 e = 3;
                 emisora = radio.getEstaciones();
                 frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }            
             if(event.getSource()== bo5){
                guardar.setEnabled(true);
                e = 4; 
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }           
             if(event.getSource()== bo6){
                e = 5; 
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                guardar.setEnabled(true);
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }         
             if(event.getSource()== bo7){
                 e = 6;
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                guardar.setEnabled(true);
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }           

            if(event.getSource()== bo8){
               guardar.setEnabled(true);
               e=7;
               emisora = radio.getEstaciones();
               frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }             
            if(event.getSource()== bo9){
                guardar.setEnabled(true);
                e = 8;
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
                    }
            
             if(event.getSource()== bo10){
                guardar.setEnabled(true);
                e = 9;
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e,radio.getFrecuencia(), radio.getEstaciones());
                    radio.LeerEstacion(e);
                    System.out.println(frecu);   
                } catch (Exception ex) {
                }
                    }           

            if(event.getSource()== bo11){
                guardar.setEnabled(true);
                e = 10;
                emisora = radio.getEstaciones();
                frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, frecu, emisora );
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }             
             
            if(event.getSource()== bo12){
                guardar.setEnabled(true);
                e =11;
                emisora = radio.getEstaciones();
                 frecu= radio.getFrecuencia();
                try {
                    radio.agregarEstacion(e, frecu, emisora );
                    radio.LeerEstacion(e);
                    System.out.println(frecu);
                    
                } catch (Exception ex) {
                }
            }             
            if(event.getSource()== sincronizar){
                    estado.setText("Frecuencia: " + frecu);
                    estado2.setText("EmisoraS: " + emisora);
                
            }
            
            if(event.getSource()== guardar){
                sincronizar.setEnabled(true);
                if( e ==0){
                    bo1.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==1){
                    bo2.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==2){
                    bo3.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==3){
                    bo4.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==4){
                    bo5.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==5){
                    bo6.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==6){
                    bo7.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==7){
                    bo8.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==8){
                    bo9.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==9){
                    bo10.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if( e ==10){
                    bo11.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
                if(e ==11){
                    bo12.setText(radio.getFrecuencia()+" "+ radio.getEstaciones());
                }
               
                
            }  
        }
        }
    
        private class TempListener implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent cuadro){
                try{
                    frecu=frecuencia.getText();
                    EMISOR=amFm.getText();
                    emisora=Double.parseDouble(EMISOR);
                    radio.modificarEstacion(frecu, emisora);
                    
                    
                    
                    
               }catch(Exception e){
                 try{
                     String EMISOR=amFm.getText();
                     emisora=Double.parseDouble(EMISOR);
                     radio.modificarEstacion(frecu, emisora);

                    
                     
                 } catch(Exception a){
                        }
                }
        }
        }
}

    
   
   



 